//gaucho.h

#ifndef GAUCHO_H
#define GAUCHO_H
#include "enemy.h"

class gaucho {

 protected:
  pair loc; //Stores the x,y location of an object
  double damage; //Stores the amount of damage done by an object
  double attack_speed; //Stores how often the object can attack
  double range; //Stores the attack range for an object
  double cost; //Stores how much resources an object requires to be contructed


 public:
  //Object's default constructor. Initializes all of the object's private variables.
  gaucho();

  //This function checks to see if an enemy object is within range of this object. An object of the enemy class is sent in to the function and a boolean is returned. It returns true if the enemy object is within range, and false otherwise.
  bool check_range(enemy *x);

  //Setters and Getters

  //This function returns the x,y pair location of the object. 
  pair getLoc();

  //This function takes an x,y pair and changes the object's x,y location to the x,y pair that was passed in.
  void setLoc(pair p);

  //This function manipulates the gaucho's x position
  void setX(int m);

  //This function manipulates the gaucho's y position
  void setY(int m);

  //This function returns the amount of damage done by an object.
  double getDamage();

  //This function takes a double and changes the object's damage variable to the double that was passed in. 
  void setDamage(double d);

  //This function returns how often the object can attack.
  double getAttack_speed();

  //This function takes a double and changes the object's attack_speed variable to the double that was passed in. 
  void setAttack_speed(double d);

  //This function returns the attack range for an object.
  double getRange();

  //This function takes a double and changes the object's range variable to the double that was passed in. 
  void setRange(double d);

  //This function returns how much resources an object requires to be contructed.
  double getCost();

  //This function takes a double and changes the object's cost variable to the double that was passed in. 
  void setCost(double d);

  //This is the object's destructor.
  ~gaucho();
};

#endif
